Software testing is generally considered an important aspect of software development. Regression testing, in particular, is often used during software development to uncover software errors introduced in modifying or adding to an existing software code base. Software development for Internet sites may be similar and pages may be subjected to testing for proper rendering on various browsers and devices. For example, a page within a site may be tested as to whether the page is compliant with standards such as those promulgated by the World Wide Web Consortium (W3C). Additionally, the page may also be tested against de facto standards commonly rendered across popular browsers.
Testing sites for proper rendering on various browsers and devices may be done manually. For instance, a software developer or tester may open various instances of popular browsers. The tester may then point the browsers to a subject site page. After the subject site pages have rendered, the tester may then be able to determine whether or not the subject site page has been rendered correctly. For instance, the tester may notice malformed page code causing irregular rendering of the subject site page. As another example, the tester may notice broken image links or overlapping text areas.
Regression testing of sites may be cumbersome, particularly when performed manually by software developers or testers. Moreover, since pages within sites are often dynamically generated, automating testing of these dynamically generated pages may be difficult. Dynamically generated pages may include pages personalized for each viewer. A pixel by pixel comparison, in this instance, may generate a large number of false positives. That is, comparisons may often identify a correct page as incorrect if the portions of the page that are dynamically generated are not ignored.